/* 
 * Spring mixin mybatis frame code general
 * Fu(iknoweth@yahoo.com) All rights reserved 
 * 
 */
package com.pricl.biz.system.dao;

import java.util.List;

import com.pricl.biz.system.entity.SystemCode;
import com.pricl.frame.common.module.TreeNodeStr;
import com.pricl.frame.common.module.ValueText;

/**
 * <p>
 * <strong>码表</strong>Data Access Interface
 * </p>
 *
 */
public interface SystemCodeDao {
	/**
	 * <p>
	 * 获取参数类别列表
	 * </p>
	 * 
	 * @param id
	 * @return List
	 */
	List<TreeNodeStr> findChildren(String id);

	/**
	 * <p>
	 * 获取参数列表
	 * </p>
	 * 
	 * @param type
	 * @return List
	 */
	List<SystemCode> findCodes(String type);

	/**
	 * <p>
	 * 删除指定类型的字典数据
	 * </p>
	 * 
	 * @param type
	 */
	void deleteByType(String type);

	/**
	 * <p>
	 * 插入字典数据列表
	 * </p>
	 * 
	 * @param code
	 */
	void insertCode(SystemCode code);

	/**
	 * <p>
	 * 获取字典值
	 * </p>
	 * 
	 * @param type
	 * @param code
	 * @return String
	 */
	String findName(String type, String code);

	/**
	 * <p>
	 * 获取字典代码
	 * </p>
	 * 
	 * @param type
	 * @param name
	 * @return String
	 */
	String findCode(String type, String name);

	/**
	 * <p>
	 * 根据字典类型获取数据
	 * </p>
	 * 
	 * @param type
	 *            字典类型
	 * @return List
	 */
	public List<SystemCode> findByType(String type);

	/**
	 * <p>
	 * 根据字典类型获取数据
	 * </p>
	 * 
	 * @param type
	 *            字典类型
	 * @return List
	 */
	public List<ValueText> list(String type);

	/**
	 * <p>
	 * 获取所有有效的字典
	 * </p>
	 * 
	 * @return List
	 */
	public List<SystemCode> findAllValid();
}
